package 排序;

// import java.util.Arrays;
import java.util.Scanner;

public class findKthLargest {
    public static int findKthLargestM(int[] nums, int k){
        // 快速排序
        quickSort(nums, 0, nums.length - 1);
        // Arrays.sort(nums); // 快排过不了leetcode最后一个测试用例
        // 返回第k大的元素
        return nums[nums.length - k];
    }
    // 快速排序
    public static void quickSort(int[] nums, int left, int right){
        // 递归终止条件
        if(left < right){
            // 分区
            int pivotIndex = partition(nums, left, right);
            // 递归排序
            quickSort(nums, left, pivotIndex - 1);
            quickSort(nums, pivotIndex + 1, right);
        }
    }
    public static int partition(int[] nums, int left, int right){
        int pivot = nums[left];
        while(left < right){
            // 从右到左找到第一个小于基准点的元素
            while(left < right && nums[right] >= pivot) right--;
            // 将小于基准点的元素移动到左边
            nums[left] = nums[right];
            // 从左到右找到第一个大于基准点的元素
            while(left < right && nums[left] <= pivot) left++;
            // 将大于基准点的元素移动到右边
            nums[right] = nums[left];
        }
        // 将基准点移动到正确的位置
        nums[left] = pivot;
        // 返回基准点的索引
        return left;
    }
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        String[] s = sc.nextLine().split(" ");
        int[] nums = new int[s.length];
        for(int i = 0; i < s.length; i++){
            nums[i] = Integer.parseInt(s[i]);
        }
        int k = sc.nextInt();
        System.out.println(findKthLargestM(nums, k));
        sc.close();
    }
}
